package d1_exception;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ExceptionDemo01 {
    public static void main(String[] args) throws ParseException {
        //目标:认识异常
        System.out.println("===开始====");
        int[] arr = {11, 22, 33};
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //System.out.println(arr[3]); //ArrayIndexOutOfBoundsException 数组索引越界异常

        String name = null;//没有地值,去访问不存在的东西,就会包这个错误
        //System.out.println(name.length()); //NullPointerException 空指针异常

        //System.out.println(10 / 0);//ArithmeticException 数字操作异常  异常出现程序会死亡

        Object o = "张麻子";
        //编译时没有报错的原因是,存在继承关系,Integer也继承了Object,万一o的真实类型就是Integer,可能就转成功了
        //Integer i = (Integer) o;//ClassCastException 类型转换异常

        String s = "23a";
        //如果能够转换成功,是属于自动拆箱
//        int i = Integer.parseInt(s);
        //int it = Integer.valueOf(s);//NumberFormatException 数字转换化异常


        parseDate("2024-03-19 13:20:31");

        System.out.println("==结束==");
    }

    private static void parseDate(String s) throws ParseException {
        //就时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse(s); // 编译时异常，写代码时就报错！
        System.out.println(d);
    }
}
